<!DOCTYPE html>
<html lang="en" dir="ltr" class="client-nojs">
<head>
<title>Named Requirements - cppreference.com</title>
<meta charset="UTF-8">
<meta name="generator" content="MediaWiki 1.21.2">
<link rel="shortcut icon" href="../../common/favicon.ico">
<link rel="stylesheet" href="../../common/ext.css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" href="../../common/site_modules.css">
<style>a:lang(ar),a:lang(ckb),a:lang(fa),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}#toc{display:none}.editsection{display:none}
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-css:7:472787eddcf4605d11de8c7ef047234f */</style>

<script src="../../common/startup_scripts.js"></script>
<script>if(window.mw){
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"cpp/named_req","wgTitle":"cpp/named req","wgCurRevisionId":139914,"wgArticleId":2427,"wgIsArticle":true,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Todo with reason"],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"cpp/named_req","wgRestrictionEdit":[],"wgRestrictionMove":[]});
}</script><script>if(window.mw){
mw.loader.implement("user.options",function(){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"disablesuggest":0,"editfont":"default","editondblclick":0,"editsection":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":0,"extendwatchlist":0,"externaldiff":0,"externaleditor":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"justify":0,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nocache":0,"noconvertlink":0,"norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"quickbar":5,"rcdays":7,"rclimit":50,"rememberpassword":0,"rows":25,"searchlimit":20,"showhiddencats":0,"showjumplinks":1,"shownumberswatching":1,"showtoc":0,"showtoolbar":1,"skin":"cppreference2","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":0,"watchdefault":0,"watchdeletion":0,
"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,"variant":"en","language":"en","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"gadget-ColiruCompiler":1,"gadget-MathJax":1});;},{},{});mw.loader.implement("user.tokens",function(){mw.user.tokens.set({"editToken":"+\\","patrolToken":false,"watchToken":false});;},{},{});
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-js:7:9f05c6caceb9bb1a482b6cebd4c5a330 */
}</script>
<script>if(window.mw){
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
}</script>
<style type="text/css">/*<![CDATA[*/
.source-cpp {line-height: normal;}
.source-cpp li, .source-cpp pre {
	line-height: normal; border: 0px none white;
}
/**
 * GeSHi Dynamically Generated Stylesheet
 * --------------------------------------
 * Dynamically generated stylesheet for cpp
 * CSS class: source-cpp, CSS id: 
 * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
 * (http://qbnz.com/highlighter/ and http://geshi.org/)
 * --------------------------------------
 */
.cpp.source-cpp .de1, .cpp.source-cpp .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}
.cpp.source-cpp  {font-family:monospace;}
.cpp.source-cpp .imp {font-weight: bold; color: red;}
.cpp.source-cpp li, .cpp.source-cpp .li1 {font-weight: normal; vertical-align:top;}
.cpp.source-cpp .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}
.cpp.source-cpp .li2 {font-weight: bold; vertical-align:top;}
.cpp.source-cpp .kw1 {color: #0000dd;}
.cpp.source-cpp .kw2 {color: #0000ff;}
.cpp.source-cpp .kw3 {color: #0000dd;}
.cpp.source-cpp .kw4 {color: #0000ff;}
.cpp.source-cpp .co1 {color: #909090;}
.cpp.source-cpp .co2 {color: #339900;}
.cpp.source-cpp .coMULTI {color: #ff0000; font-style: italic;}
.cpp.source-cpp .es0 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es1 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es2 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es3 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es4 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es5 {color: #008000; font-weight: bold;}
.cpp.source-cpp .br0 {color: #008000;}
.cpp.source-cpp .sy0 {color: #008000;}
.cpp.source-cpp .sy1 {color: #000080;}
.cpp.source-cpp .sy2 {color: #000040;}
.cpp.source-cpp .sy3 {color: #000040;}
.cpp.source-cpp .sy4 {color: #008080;}
.cpp.source-cpp .st0 {color: #008000;}
.cpp.source-cpp .nu0 {color: #000080;}
.cpp.source-cpp .nu6 {color: #000080;}
.cpp.source-cpp .nu8 {color: #000080;}
.cpp.source-cpp .nu12 {color: #000080;}
.cpp.source-cpp .nu16 {color:#000080;}
.cpp.source-cpp .nu17 {color:#000080;}
.cpp.source-cpp .nu18 {color:#000080;}
.cpp.source-cpp .nu19 {color:#000080;}
.cpp.source-cpp .ln-xtra, .cpp.source-cpp li.ln-xtra, .cpp.source-cpp div.ln-xtra {background-color: #ffc;}
.cpp.source-cpp span.xtra { display:block; }

/*]]>*/
</style><!--[if lt IE 7]><style type="text/css">body{behavior:url("/mwiki/skins/cppreference2/csshover.min.htc")}</style><![endif]--></head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_named_req skin-cppreference2 action-view cpp-navbar">
        <!-- header -->
        <!-- /header -->
        <!-- content -->
<div id="cpp-content-base">
            <div id="content">
                <a id="top"></a>
                <div id="mw-js-message" style="display:none;"></div>
                                <!-- firstHeading -->
<h1 id="firstHeading" class="firstHeading">Named Requirements</h1>
                <!-- /firstHeading -->
                <!-- bodyContent -->
                <div id="bodyContent">
                                        <!-- tagline -->
                    <div id="siteSub">From cppreference.com</div>
                    <!-- /tagline -->
                                        <!-- subtitle -->
                    <div id="contentSub"><span class="subpages">&lt; <a href="../cpp.html" title="cpp">cpp</a></span></div>
                    <!-- /subtitle -->
                                                            <!-- bodycontent -->
                    <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div class="t-navbar" style=""><div class="t-navbar-sep"> </div><div class="t-navbar-head"><a href="../cpp.html" title="cpp"> C++</a><div class="t-navbar-menu"><div><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em;">
<tr class="t-nv"><td colspan="5"> <a href="compiler_support.html" title="cpp/compiler support"> Compiler support</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="freestanding.html" title="cpp/freestanding"> Freestanding and hosted</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="language.html" title="cpp/language"> Language</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="header.html" title="cpp/header"> Standard library headers</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <strong class="selflink"> Named requirements </strong> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="feature_test.html" title="cpp/feature test"> Feature test macros </a> <span class="t-mark-rev t-since-cxx20">(C++20)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="utility.html#Language_support" title="cpp/utility"> Language support library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="concepts.html" title="cpp/concepts"> Concepts library</a> <span class="t-mark-rev t-since-cxx20">(C++20)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="meta.html" title="cpp/meta"> Metaprogramming library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="error.html" title="cpp/error"> Diagnostics library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="utility.html" title="cpp/utility"> General utilities library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="string.html" title="cpp/string"> Strings library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="container.html" title="cpp/container"> Containers library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="iterator.html" title="cpp/iterator"> Iterators library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="ranges.html" title="cpp/ranges"> Ranges library</a> <span class="t-mark-rev t-since-cxx20">(C++20)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="algorithm.html" title="cpp/algorithm"> Algorithms library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="numeric.html" title="cpp/numeric"> Numerics library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="locale.html" title="cpp/locale"> Localizations library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="io.html" title="cpp/io"> Input/output library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="filesystem.html" title="cpp/filesystem"> Filesystem library</a> <span class="t-mark-rev t-since-cxx17">(C++17)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="regex.html" title="cpp/regex"> Regular expressions library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="thread.html" title="cpp/thread"> Concurrency support library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="experimental.html" title="cpp/experimental"> Technical specifications</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="symbol_index.html" title="cpp/symbol index"> Symbols index</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="links/libs.html" title="cpp/links/libs"> External libraries</a> </td></tr>
</table></div><div></div></div></div></div><div class="t-navbar-sep"> </div><div class="t-navbar-head"><strong class="selflink"> C++ named requirements</strong><div class="t-navbar-menu"><div><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv-h1"><td colspan="5">Basic</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/DefaultConstructible.html" title="cpp/named req/DefaultConstructible"><span class="t-lines"><span>DefaultConstructible</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/CopyAssignable.html" title="cpp/named req/CopyAssignable"><span class="t-lines"><span>CopyAssignable</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/CopyConstructible.html" title="cpp/named req/CopyConstructible"><span class="t-lines"><span>CopyConstructible</span></span></a></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/MoveAssignable.html" title="cpp/named req/MoveAssignable"><span class="t-lines"><span>MoveAssignable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/MoveConstructible.html" title="cpp/named req/MoveConstructible"><span class="t-lines"><span>MoveConstructible</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Destructible.html" title="cpp/named req/Destructible"><span class="t-lines"><span>Destructible</span></span></a></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv-h1"><td colspan="5">Type properties</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/ScalarType.html" title="cpp/named req/ScalarType"><span class="t-lines"><span>ScalarType</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/TriviallyCopyable.html" title="cpp/named req/TriviallyCopyable"><span class="t-lines"><span>TriviallyCopyable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/StandardLayoutType.html" title="cpp/named req/StandardLayoutType"><span class="t-lines"><span>StandardLayoutType</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/PODType.html" title="cpp/named req/PODType"><span class="t-lines"><span>PODType</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/TrivialType.html" title="cpp/named req/TrivialType"><span class="t-lines"><span>TrivialType</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/ImplicitLifetimeType.html" title="cpp/named req/ImplicitLifetimeType"><span class="t-lines"><span>ImplicitLifetimeType</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv-h1"><td colspan="5">Library-Wide</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/EqualityComparable.html" title="cpp/named req/EqualityComparable"><span class="t-lines"><span>EqualityComparable</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/LessThanComparable.html" title="cpp/named req/LessThanComparable"><span class="t-lines"><span>LessThanComparable</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Swappable.html" title="cpp/named req/Swappable"><span class="t-lines"><span>Swappable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/ValueSwappable.html" title="cpp/named req/ValueSwappable"><span class="t-lines"><span>ValueSwappable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/NullablePointer.html" title="cpp/named req/NullablePointer"><span class="t-lines"><span>NullablePointer</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Hash.html" title="cpp/named req/Hash"><span class="t-lines"><span>Hash</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Allocator.html" title="cpp/named req/Allocator"><span class="t-lines"><span>Allocator</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/FunctionObject.html" title="cpp/named req/FunctionObject"><span class="t-lines"><span>FunctionObject</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Callable.html" title="cpp/named req/Callable"><span class="t-lines"><span>Callable</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Predicate.html" title="cpp/named req/Predicate"><span class="t-lines"><span>Predicate</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/BinaryPredicate.html" title="cpp/named req/BinaryPredicate"><span class="t-lines"><span>BinaryPredicate</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Compare.html" title="cpp/named req/Compare"><span class="t-lines"><span>Compare</span></span></a></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv-h1"><td colspan="5">Container</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Container.html" title="cpp/named req/Container"><span class="t-lines"><span>Container</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/SequenceContainer.html" title="cpp/named req/SequenceContainer"><span class="t-lines"><span>SequenceContainer</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/ContiguousContainer.html" title="cpp/named req/ContiguousContainer"><span class="t-lines"><span>ContiguousContainer</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/ReversibleContainer.html" title="cpp/named req/ReversibleContainer"><span class="t-lines"><span>ReversibleContainer</span></span></a></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/AssociativeContainer.html" title="cpp/named req/AssociativeContainer"><span class="t-lines"><span>AssociativeContainer</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/AllocatorAwareContainer.html" title="cpp/named req/AllocatorAwareContainer"><span class="t-lines"><span>AllocatorAwareContainer</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/UnorderedAssociativeContainer.html" title="cpp/named req/UnorderedAssociativeContainer"><span class="t-lines"><span>UnorderedAssociativeContainer</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5">Container Elements</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/DefaultInsertable.html" title="cpp/named req/DefaultInsertable"><span class="t-lines"><span>DefaultInsertable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/CopyInsertable.html" title="cpp/named req/CopyInsertable"><span class="t-lines"><span>CopyInsertable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/MoveInsertable.html" title="cpp/named req/MoveInsertable"><span class="t-lines"><span>MoveInsertable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/EmplaceConstructible.html" title="cpp/named req/EmplaceConstructible"><span class="t-lines"><span>EmplaceConstructible</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Erasable.html" title="cpp/named req/Erasable"><span class="t-lines"><span>Erasable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td></tr>
<tr class="t-nv-h1"><td colspan="5">Iterator</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Iterator.html" title="cpp/named req/Iterator"><span class="t-lines"><span>LegacyIterator</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/OutputIterator.html" title="cpp/named req/OutputIterator"><span class="t-lines"><span>LegacyOutputIterator</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/InputIterator.html" title="cpp/named req/InputIterator"><span class="t-lines"><span>LegacyInputIterator</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/ForwardIterator.html" title="cpp/named req/ForwardIterator"><span class="t-lines"><span>LegacyForwardIterator</span></span></a></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/BidirectionalIterator.html" title="cpp/named req/BidirectionalIterator"><span class="t-lines"><span>LegacyBidirectionalIterator</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/RandomAccessIterator.html" title="cpp/named req/RandomAccessIterator"><span class="t-lines"><span>LegacyRandomAccessIterator</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/ContiguousIterator.html" title="cpp/named req/ContiguousIterator"><span class="t-lines"><span>LegacyContiguousIterator</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/ConstexprIterator.html" title="cpp/named req/ConstexprIterator"><span class="t-lines"><span>ConstexprIterator</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv-h1"><td colspan="5">Stream I/O</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/FormattedInputFunction.html" title="cpp/named req/FormattedInputFunction"><span class="t-lines"><span>FormattedInputFunction</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/UnformattedInputFunction.html" title="cpp/named req/UnformattedInputFunction"><span class="t-lines"><span>UnformattedInputFunction</span></span></a></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/FormattedOutputFunction.html" title="cpp/named req/FormattedOutputFunction"><span class="t-lines"><span>FormattedOutputFunction</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/UnformattedOutputFunction.html" title="cpp/named req/UnformattedOutputFunction"><span class="t-lines"><span>UnformattedOutputFunction</span></span></a></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv-h1"><td colspan="5">Formatting</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/BasicFormatter.html" title="cpp/named req/BasicFormatter"><span class="t-lines"><span>BasicFormatter</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Formatter.html" title="cpp/named req/Formatter"><span class="t-lines"><span>Formatter</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv-h1"><td colspan="5">Random Numbers</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/SeedSequence.html" title="cpp/named req/SeedSequence"><span class="t-lines"><span>SeedSequence</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/RandomNumberEngine.html" title="cpp/named req/RandomNumberEngine"><span class="t-lines"><span>RandomNumberEngine</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/RandomNumberDistribution.html" title="cpp/named req/RandomNumberDistribution"><span class="t-lines"><span>RandomNumberDistribution</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/UniformRandomBitGenerator.html" title="cpp/named req/UniformRandomBitGenerator"><span class="t-lines"><span>UniformRandomBitGenerator</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/RandomNumberEngineAdaptor.html" title="cpp/named req/RandomNumberEngineAdaptor"><span class="t-lines"><span>RandomNumberEngineAdaptor</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv-h1"><td colspan="5">Concurrency</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/BasicLockable.html" title="cpp/named req/BasicLockable"><span class="t-lines"><span>BasicLockable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Lockable.html" title="cpp/named req/Lockable"><span class="t-lines"><span>Lockable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/TimedLockable.html" title="cpp/named req/TimedLockable"><span class="t-lines"><span>TimedLockable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/SharedLockable.html" title="cpp/named req/SharedLockable"><span class="t-lines"><span>SharedLockable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx14">(C++14)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/SharedTimedLockable.html" title="cpp/named req/SharedTimedLockable"><span class="t-lines"><span>SharedTimedLockable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx14">(C++14)</span></span></span></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Mutex.html" title="cpp/named req/Mutex"><span class="t-lines"><span>Mutex</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/TimedMutex.html" title="cpp/named req/TimedMutex"><span class="t-lines"><span>TimedMutex</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/SharedMutex.html" title="cpp/named req/SharedMutex"><span class="t-lines"><span>SharedMutex</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/SharedTimedMutex.html" title="cpp/named req/SharedTimedMutex"><span class="t-lines"><span>SharedTimedMutex</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx14">(C++14)</span></span></span></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv-h1"><td colspan="5">Other</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/CharTraits.html" title="cpp/named req/CharTraits"><span class="t-lines"><span>CharTraits</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/RegexTraits.html" title="cpp/named req/RegexTraits"><span class="t-lines"><span>RegexTraits</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/BitmaskType.html" title="cpp/named req/BitmaskType"><span class="t-lines"><span>BitmaskType</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/NumericType.html" title="cpp/named req/NumericType"><span class="t-lines"><span>NumericType</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/LiteralType.html" title="cpp/named req/LiteralType"><span class="t-lines"><span>LiteralType</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/UnaryTypeTrait.html" title="cpp/named req/UnaryTypeTrait"><span class="t-lines"><span>UnaryTypeTrait</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/BinaryTypeTrait.html" title="cpp/named req/BinaryTypeTrait"><span class="t-lines"><span>BinaryTypeTrait</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/TransformationTrait.html" title="cpp/named req/TransformationTrait"><span class="t-lines"><span>TransformationTrait</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/Clock.html" title="cpp/named req/Clock"><span class="t-lines"><span>Clock</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-named-req-table"><div><a href="named_req/TrivialClock.html" title="cpp/named req/TrivialClock"><span class="t-lines"><span>TrivialClock</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
</table></div></td></tr>
</table></div><div></div></div></div></div><div class="t-navbar-sep"> </div></div>
<p>The <i>named requirements</i> listed on this page are the named requirements used in the normative text of the C++ standard to define the expectations of the standard library.
</p><p>Some of these requirements are being formalized in C++20 using the <a href="language/constraints.html" title="cpp/language/constraints">concepts</a> language feature. Until then, the burden is on the programmer to ensure that library templates are instantiated with template arguments that satisfy these requirements. Failure to do so may result in very complex compiler diagnostics.
</p>
<table class="t-dsc-begin">

<tr>
<td colspan="2"> <h3> <span class="mw-headline" id="Basic">Basic</span></h3>
</td></tr>

<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/DefaultConstructible.html" title="cpp/named req/DefaultConstructible"> <span class="t-lines"><span>DefaultConstructible</span></span></a></div></div>
</td>
<td> specifies that an object of the type can be default constructed <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/MoveConstructible.html" title="cpp/named req/MoveConstructible"> <span class="t-lines"><span>MoveConstructible</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> specifies that an object of the type can be constructed from rvalue <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/CopyConstructible.html" title="cpp/named req/CopyConstructible"> <span class="t-lines"><span>CopyConstructible</span></span></a></div></div>
</td>
<td> specifies that an object of the type can be constructed from lvalue <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/MoveAssignable.html" title="cpp/named req/MoveAssignable"> <span class="t-lines"><span>MoveAssignable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> specifies that an object of the type can be assigned from rvalue <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/CopyAssignable.html" title="cpp/named req/CopyAssignable"> <span class="t-lines"><span>CopyAssignable</span></span></a></div></div>
</td>
<td> specifies that an object of the type can be assigned from lvalue <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Destructible.html" title="cpp/named req/Destructible"> <span class="t-lines"><span>Destructible</span></span></a></div></div>
</td>
<td> specifies that an object of the type can be destroyed <br> <span class="t-mark">(named requirement)</span>
</td></tr>



<tr>
<td colspan="2"> <h3> <span class="mw-headline" id="Type_properties">Type properties</span></h3>
</td></tr>

<tr class="t-dsc">
<td colspan="2"> Note: the standard does not define named requirements with names specified in this subcategory. <br>These are type categories defined by the core language. They are included here as named requirements only for consistency.
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/ScalarType.html" title="cpp/named req/ScalarType"> <span class="t-lines"><span>ScalarType</span></span></a></div></div>
</td>
<td> object types that are not array types or class types <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/PODType.html" title="cpp/named req/PODType"> <span class="t-lines"><span>PODType</span></span></a></div></div>
</td>
<td> POD (Plain Old Data) types, compatible with C <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">struct</span></span></span> <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/TriviallyCopyable.html" title="cpp/named req/TriviallyCopyable"> <span class="t-lines"><span>TriviallyCopyable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> objects of these types can maintain their values after copying their underlying bytes <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/TrivialType.html" title="cpp/named req/TrivialType"> <span class="t-lines"><span>TrivialType</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> objects of these types can be trivially constructed and copied <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/StandardLayoutType.html" title="cpp/named req/StandardLayoutType"> <span class="t-lines"><span>StandardLayoutType</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> these types are useful for communicating with code written in other programming languages <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/ImplicitLifetimeType.html" title="cpp/named req/ImplicitLifetimeType"> <span class="t-lines"><span>ImplicitLifetimeType</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div>
</td>
<td> objects of these types can be implicitly created, and their lifetimes can be implictly started <br> <span class="t-mark">(named requirement)</span>
</td></tr>



<tr>
<td colspan="2"> <h3> <span class="mw-headline" id="Library-wide">Library-wide</span></h3>
</td></tr>

<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/EqualityComparable.html" title="cpp/named req/EqualityComparable"> <span class="t-lines"><span>EqualityComparable</span></span></a></div></div>
</td>
<td> <code>operator==</code> is an equivalence relation <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/LessThanComparable.html" title="cpp/named req/LessThanComparable"> <span class="t-lines"><span>LessThanComparable</span></span></a></div></div>
</td>
<td> <code>operator&lt;</code> is a strict weak ordering relation <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Swappable.html" title="cpp/named req/Swappable"> <span class="t-lines"><span>Swappable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> can be swapped with an unqualified non-member function call <span class="t-c"><span class="mw-geshi cpp source-cpp">swap<span class="br0">(</span><span class="br0">)</span></span></span> <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/ValueSwappable.html" title="cpp/named req/ValueSwappable"> <span class="t-lines"><span>ValueSwappable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> an <a href="named_req/Iterator.html" title="cpp/named req/Iterator"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">LegacyIterator</span></a> that dereferences to a <a href="named_req/Swappable.html" title="cpp/named req/Swappable"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">Swappable</span></a> type <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/NullablePointer.html" title="cpp/named req/NullablePointer"> <span class="t-lines"><span>NullablePointer</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> a pointer-like type supporting a null value <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Hash.html" title="cpp/named req/Hash"> <span class="t-lines"><span>Hash</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> a <a href="named_req/FunctionObject.html" title="cpp/named req/FunctionObject"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">FunctionObject</span></a> that for inputs with different values has a low probability of giving the same output <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Allocator.html" title="cpp/named req/Allocator"> <span class="t-lines"><span>Allocator</span></span></a></div></div>
</td>
<td> a class type that contains allocation information <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/FunctionObject.html" title="cpp/named req/FunctionObject"> <span class="t-lines"><span>FunctionObject</span></span></a></div></div>
</td>
<td> an object that can be called with the function call syntax <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Callable.html" title="cpp/named req/Callable"> <span class="t-lines"><span>Callable</span></span></a></div></div>
</td>
<td> a type for which the invoke operation is defined <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Predicate.html" title="cpp/named req/Predicate"> <span class="t-lines"><span>Predicate</span></span></a></div></div>
</td>
<td> a <a href="named_req/FunctionObject.html" title="cpp/named req/FunctionObject"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">FunctionObject</span></a> that returns a value convertible to <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">bool</span></span></span> for one argument without modifying it <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/BinaryPredicate.html" title="cpp/named req/BinaryPredicate"> <span class="t-lines"><span>BinaryPredicate</span></span></a></div></div>
</td>
<td> a <a href="named_req/FunctionObject.html" title="cpp/named req/FunctionObject"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">FunctionObject</span></a> that returns a value convertible to <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">bool</span></span></span> for two arguments without modifying them <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Compare.html" title="cpp/named req/Compare"> <span class="t-lines"><span>Compare</span></span></a></div></div>
</td>
<td> a <a href="named_req/BinaryPredicate.html" title="cpp/named req/BinaryPredicate"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">BinaryPredicate</span></a> that establishes an ordering relation <br> <span class="t-mark">(named requirement)</span>
</td></tr>

</table>
<table class="t-dsc-begin">

<tr>
<td colspan="2"> <h3> <span class="mw-headline" id="Container">Container</span></h3>
</td></tr>

<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Container.html" title="cpp/named req/Container"> <span class="t-lines"><span>Container</span></span></a></div></div>
</td>
<td> data structure that allows element access using iterators <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/ReversibleContainer.html" title="cpp/named req/ReversibleContainer"> <span class="t-lines"><span>ReversibleContainer</span></span></a></div></div>
</td>
<td> container using bidirectional iterators <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/AllocatorAwareContainer.html" title="cpp/named req/AllocatorAwareContainer"> <span class="t-lines"><span>AllocatorAwareContainer</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> container using an allocator <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/SequenceContainer.html" title="cpp/named req/SequenceContainer"> <span class="t-lines"><span>SequenceContainer</span></span></a></div></div>
</td>
<td> container with elements stored linearly <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/ContiguousContainer.html" title="cpp/named req/ContiguousContainer"> <span class="t-lines"><span>ContiguousContainer</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div>
</td>
<td> container with elements stored at adjacent memory addresses <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/AssociativeContainer.html" title="cpp/named req/AssociativeContainer"> <span class="t-lines"><span>AssociativeContainer</span></span></a></div></div>
</td>
<td> container that stores elements by associating them to keys <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/UnorderedAssociativeContainer.html" title="cpp/named req/UnorderedAssociativeContainer"> <span class="t-lines"><span>UnorderedAssociativeContainer</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> container that stores elements stored in buckets by associating them to keys <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr>
<td colspan="2"> <h5> <span class="mw-headline" id="Container_element"> Container element </span></h5>
</td></tr>

<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/DefaultInsertable.html" title="cpp/named req/DefaultInsertable"> <span class="t-lines"><span>DefaultInsertable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> element can be default-constructed in uninitialized storage <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/CopyInsertable.html" title="cpp/named req/CopyInsertable"> <span class="t-lines"><span>CopyInsertable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> element can be copy-constructed in uninitialized storage <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/MoveInsertable.html" title="cpp/named req/MoveInsertable"> <span class="t-lines"><span>MoveInsertable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> element can be move-constructed in uninitialized storage <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/EmplaceConstructible.html" title="cpp/named req/EmplaceConstructible"> <span class="t-lines"><span>EmplaceConstructible</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> element can be constructed in uninitialized storage <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Erasable.html" title="cpp/named req/Erasable"> <span class="t-lines"><span>Erasable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> element can be destroyed using an allocator <br> <span class="t-mark">(named requirement)</span>
</td></tr>



<tr>
<td colspan="2"> <h3> <span class="mw-headline" id="Iterator">Iterator</span></h3>
</td></tr>

<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Iterator.html" title="cpp/named req/Iterator"> <span class="t-lines"><span>LegacyIterator</span></span></a></div></div>
</td>
<td> general concept to access data within some data structure <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/InputIterator.html" title="cpp/named req/InputIterator"> <span class="t-lines"><span>LegacyInputIterator</span></span></a></div></div>
</td>
<td> iterator that can be used to read data <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/OutputIterator.html" title="cpp/named req/OutputIterator"> <span class="t-lines"><span>LegacyOutputIterator</span></span></a></div></div>
</td>
<td> iterator that can be used to write data <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/ForwardIterator.html" title="cpp/named req/ForwardIterator"> <span class="t-lines"><span>LegacyForwardIterator</span></span></a></div></div>
</td>
<td> iterator that can be used to read data multiple times <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/BidirectionalIterator.html" title="cpp/named req/BidirectionalIterator"> <span class="t-lines"><span>LegacyBidirectionalIterator</span></span></a></div></div>
</td>
<td> iterator that can be both incremented and decremented <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/RandomAccessIterator.html" title="cpp/named req/RandomAccessIterator"> <span class="t-lines"><span>LegacyRandomAccessIterator</span></span></a></div></div>
</td>
<td> iterator that can be advanced in constant time <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/ContiguousIterator.html" title="cpp/named req/ContiguousIterator"> <span class="t-lines"><span>LegacyContiguousIterator</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div>
</td>
<td> iterator to contiguously-allocated elements <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/ConstexprIterator.html" title="cpp/named req/ConstexprIterator"> <span class="t-lines"><span>ConstexprIterator</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div>
</td>
<td> iterator that can be used during constant expression evaluation <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr>
<td colspan="2"> <h3> <span class="mw-headline" id="Stream_I.2FO_functions">Stream I/O functions</span></h3>
</td></tr>

<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/UnformattedInputFunction.html" title="cpp/named req/UnformattedInputFunction"> <span class="t-lines"><span>UnformattedInputFunction</span></span></a></div></div>
</td>
<td> a stream input function that does not skip leading whitespace and counts the processed characters <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/FormattedInputFunction.html" title="cpp/named req/FormattedInputFunction"> <span class="t-lines"><span>FormattedInputFunction</span></span></a></div></div>
</td>
<td> a stream input function that skips leading whitespace <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/UnformattedOutputFunction.html" title="cpp/named req/UnformattedOutputFunction"> <span class="t-lines"><span>UnformattedOutputFunction</span></span></a></div></div>
</td>
<td> a basic stream output function <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/FormattedOutputFunction.html" title="cpp/named req/FormattedOutputFunction"> <span class="t-lines"><span>FormattedOutputFunction</span></span></a></div></div>
</td>
<td> a stream output function that sets failbit on errors and returns a reference to the stream <br> <span class="t-mark">(named requirement)</span>
</td></tr>



<tr>
<td colspan="2"> <h3> <span class="mw-headline" id="Random_Number_Generation">Random Number Generation</span></h3>
</td></tr>

<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/SeedSequence.html" title="cpp/named req/SeedSequence"> <span class="t-lines"><span>SeedSequence</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> consumes a sequence of integers and produces a sequence of 32-bit unsigned values <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/UniformRandomBitGenerator.html" title="cpp/named req/UniformRandomBitGenerator"> <span class="t-lines"><span>UniformRandomBitGenerator</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> returns uniformly distributed random unsigned integers <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/RandomNumberEngine.html" title="cpp/named req/RandomNumberEngine"> <span class="t-lines"><span>RandomNumberEngine</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> a deterministic <a href="named_req/UniformRandomBitGenerator.html" title="cpp/named req/UniformRandomBitGenerator"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">UniformRandomBitGenerator</span></a>, defined by the seed <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/RandomNumberEngineAdaptor.html" title="cpp/named req/RandomNumberEngineAdaptor"> <span class="t-lines"><span>RandomNumberEngineAdaptor</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> a <a href="named_req/RandomNumberEngine.html" title="cpp/named req/RandomNumberEngine"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">RandomNumberEngine</span></a> that transforms the output of another <a href="named_req/RandomNumberEngine.html" title="cpp/named req/RandomNumberEngine"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">RandomNumberEngine</span></a> <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/RandomNumberDistribution.html" title="cpp/named req/RandomNumberDistribution"> <span class="t-lines"><span>RandomNumberDistribution</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> returns random numbers distributed according to a given mathematical probability density function <br> <span class="t-mark">(named requirement)</span>
</td></tr>



<tr>
<td colspan="2"> <h3> <span class="mw-headline" id="Concurrency">Concurrency</span></h3>
</td></tr>

<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/BasicLockable.html" title="cpp/named req/BasicLockable"> <span class="t-lines"><span>BasicLockable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> provides exclusive ownership semantics for execution agents (i.e. threads) <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Lockable.html" title="cpp/named req/Lockable"> <span class="t-lines"><span>Lockable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> a <a href="named_req/BasicLockable.html" title="cpp/named req/BasicLockable"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">BasicLockable</span></a> that supports attempted lock acquisition <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/TimedLockable.html" title="cpp/named req/TimedLockable"> <span class="t-lines"><span>TimedLockable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> a <a href="named_req/Lockable.html" title="cpp/named req/Lockable"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">Lockable</span></a> that supports timed lock acquisition <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/SharedLockable.html" title="cpp/named req/SharedLockable"> <span class="t-lines"><span>SharedLockable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx14">(C++14)</span></span></span></div></div>
</td>
<td> provides shared ownership semantics for execution agents (i.e. threads) <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/SharedTimedLockable.html" title="cpp/named req/SharedTimedLockable"> <span class="t-lines"><span>SharedTimedLockable</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx14">(C++14)</span></span></span></div></div>
</td>
<td> a <a href="named_req/SharedLockable.html" title="cpp/named req/SharedLockable"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">SharedLockable</span></a> that supports timed lock acquisition <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Mutex.html" title="cpp/named req/Mutex"> <span class="t-lines"><span>Mutex</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> a <a href="named_req/Lockable.html" title="cpp/named req/Lockable"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">Lockable</span></a> that protects against data races and sequentially consistent synchronization <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/TimedMutex.html" title="cpp/named req/TimedMutex"> <span class="t-lines"><span>TimedMutex</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> a <a href="named_req/TimedLockable.html" title="cpp/named req/TimedLockable"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">TimedLockable</span></a> that protects against data races and sequentially consistent synchronization <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/SharedMutex.html" title="cpp/named req/SharedMutex"> <span class="t-lines"><span>SharedMutex</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div>
</td>
<td> a <a href="named_req/Mutex.html" title="cpp/named req/Mutex"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">Mutex</span></a> that supports shared ownership semantics <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/SharedTimedMutex.html" title="cpp/named req/SharedTimedMutex"> <span class="t-lines"><span>SharedTimedMutex</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx14">(C++14)</span></span></span></div></div>
</td>
<td> a <a href="named_req/TimedMutex.html" title="cpp/named req/TimedMutex"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">TimedMutex</span></a> that supports shared ownership semantics <br> <span class="t-mark">(named requirement)</span>
</td></tr>



<tr>
<td colspan="2"> <h3> <span class="mw-headline" id="Other">Other</span></h3>
</td></tr>

<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/UnaryTypeTrait.html" title="cpp/named req/UnaryTypeTrait"> <span class="t-lines"><span>UnaryTypeTrait</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> describes a property of a type <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/BinaryTypeTrait.html" title="cpp/named req/BinaryTypeTrait"> <span class="t-lines"><span>BinaryTypeTrait</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> describes a relationship  between two types <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/TransformationTrait.html" title="cpp/named req/TransformationTrait"> <span class="t-lines"><span>TransformationTrait</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> modifies a property of a type <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Clock.html" title="cpp/named req/Clock"> <span class="t-lines"><span>Clock</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> aggregates a duration, a time point, and a function to get the current time point <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/TrivialClock.html" title="cpp/named req/TrivialClock"> <span class="t-lines"><span>TrivialClock</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> a <a href="named_req/Clock.html" title="cpp/named req/Clock"><span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">Clock</span></a> that does not throw exceptions <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/CharTraits.html" title="cpp/named req/CharTraits"> <span class="t-lines"><span>CharTraits</span></span></a></div></div>
</td>
<td> defines types and functions for a character type <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/BitmaskType.html" title="cpp/named req/BitmaskType"> <span class="t-lines"><span>BitmaskType</span></span></a></div></div>
</td>
<td> bitset, integer, or enumeration <br> <span class="t-mark">(named requirement)</span>
</td></tr>
 

<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/NumericType.html" title="cpp/named req/NumericType"> <span class="t-lines"><span>NumericType</span></span></a></div></div>
</td>
<td> a type for which initialization is effectively equal to assignment <br> <span class="t-mark">(named requirement)</span>
</td></tr>
 

<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/RegexTraits.html" title="cpp/named req/RegexTraits"> <span class="t-lines"><span>RegexTraits</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div>
</td>
<td> defines types and functions used by the <a href="regex.html" title="cpp/regex">regular expressions library</a> <br> <span class="t-mark">(named requirement)</span>
</td></tr>
 

<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/LiteralType.html" title="cpp/named req/LiteralType"> <span class="t-lines"><span>LiteralType</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span><span class="t-mark-rev t-deprecated-cxx20">(deprecated in C++20)</span></span></span></div></div>
</td>
<td> a type with constexpr constructor <br> <span class="t-mark">(named requirement)</span>
</td></tr>


<tr class="t-dsc">
<td> <div class="t-dsc-named-req-div"><div><a href="named_req/Formatter.html" title="cpp/named req/Formatter"> <span class="t-lines"><span>Formatter</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div>
</td>
<td> defines functions used by the <a href="utility/format.html" title="cpp/utility/format">formatting library</a> <br> <span class="t-mark">(named requirement)</span>
</td></tr>


</table>
<p><br>
</p>
<table class="metadata plainlinks ambox mbox-small-left ambox-notice" style=""><tr><td class="mbox-empty-cell"></td><td class="mbox-text" style="">This section is incomplete<br>Reason: Any other missing requirement? </td></tr></table>

<!-- 
NewPP limit report
Preprocessor visited node count: 12024/1000000
Preprocessor generated node count: 12940/1000000
Post‐expand include size: 318355/2097152 bytes
Template argument size: 89778/2097152 bytes
Highest expansion depth: 17/40
Expensive parser function count: 0/100
-->

<!-- Saved in parser cache with key mwiki1-mwiki_en_:pcache:idhash:2427-0!*!0!!en!*!* and timestamp 20220530091505 -->
</div>                    <!-- /bodycontent -->
                                        <!-- printfooter -->
                    <div class="printfooter">
                    Retrieved from "<a href="https://en.cppreference.com/mwiki/index.php?title=cpp/named_req&amp;oldid=139914">https://en.cppreference.com/mwiki/index.php?title=cpp/named_req&amp;oldid=139914</a>"                    </div>
                    <!-- /printfooter -->
                                                            <!-- catlinks -->
                    <!-- /catlinks -->
                                                            <div class="visualClear"></div>
                    <!-- debughtml -->
                                        <!-- /debughtml -->
                </div>
                <!-- /bodyContent -->
            </div>
        </div>
        <!-- /content -->
        <!-- footer -->
        <div id="cpp-footer-base" class="noprint">
            <div id="footer">
                        <div id="cpp-navigation">
            <h5>Navigation</h5>
            <ul><li><a href="https://en.cppreference.com/w/cpp/named_req">Online version</a></li><li>Offline version retrieved 2022-07-30 14:05.</li></ul></div>
                        <ul id="footer-info">
                                    <li id="footer-info-lastmod"> This page was last modified on 30 May 2022, at 02:02.</li>
                                    <li id="footer-info-viewcount">This page has been accessed 418,586 times.</li>
                            </ul>
                    </div>
        </div>
        <!-- /footer -->
        <script>if(window.mw){
mw.loader.state({"site":"loading","user":"missing","user.groups":"ready"});
}</script>
<script src="../../common/skin_scripts.js"></script>
<script>if(window.mw){
mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.page.ready","mediawiki.searchSuggest","mediawiki.hidpi","ext.gadget.ColiruCompiler","ext.gadget.MathJax"], null, true);
}</script>
<script src="../../common/site_scripts.js"></script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-2828341-1']);
_gaq.push(['_setDomainName', 'cppreference.com']);
_gaq.push(['_trackPageview']);
</script><!-- Served in 0.039 secs. -->
	</body>
<!-- Cached 20220530093510 -->
</html>